package StructuralPattern.Bridge.MultiInheritance;

/**
 * @Classname : PaypalClient
 * @Description : 测试 多层继承方式扩展
 * 在线支付方法存在多个维度（支付应用、验证方式）的变化时，继承方式实现扩展存在以下缺点：
 * ① 类的数量随着变化维度的增加呈现指数级增长，不便维护
 * ② 扩展不够灵活
 * @Author : chentianyu
 * @Date 2023/2/17 21:48
 */


public class PaypalClient {
    public static void main(String[] args) {

        new AliPay().pay();
        new WeChatPay().pay();
        new UnionPay().pay();
        System.out.println("--------------------------------------------------------------------");

        new FaceAliPay().pay();
        new FingerprintAliPay().pay();
        new PasswordAliPay().pay();
        System.out.println("--------------------------------------------------------------------");

        new FaceWeChatPay().pay();
        new FingerprintWeChatPay().pay();
        new PasswordWeChatPay().pay();
        System.out.println("--------------------------------------------------------------------");

        new FaceUnionPay().pay();
        new FingerprintUnionPay().pay();
        new PasswordUnionPay().pay();
        System.out.println("--------------------------------------------------------------------");
    }
}

/** 20230217
 * 支付宝付款 100 元
 * 微信付款 100 元
 * 云闪付付款 100 元
 * --------------------------------------------------------------------
 * 人脸验证中。。。
 * 支付宝付款 100 元
 * 指纹验证中。。。
 * 支付宝付款 100 元
 * 密码验证中。。。
 * 支付宝付款 100 元
 * --------------------------------------------------------------------
 * 人脸验证中。。。
 * 微信付款 100 元
 * 指纹验证中。。。
 * 微信付款 100 元
 * 密码验证中。。。
 * 微信付款 100 元
 * --------------------------------------------------------------------
 * 人脸验证中。。。
 * 云闪付付款 100 元
 * 指纹验证中。。。
 * 云闪付付款 100 元
 * 密码验证中。。。
 * 云闪付付款 100 元
 * --------------------------------------------------------------------
 */
